A central processing unit (CPU) may include or cooperate with one or more cache memories to facilitate quick access to data (rather than having to access data from the primary system memory). Memory latency, relative to CPU performance, is ever increasing. Caches can alleviate the average latency of a load operation by storing frequently accessed data in structures that have significantly shorter latencies associated therewith. Moreover, memory subsystem performance can be increased by storing the most commonly used data in smaller but faster cache memories. For example, “stack data” (i.e., frequently used and/or recently accessed data) may be cached in small stack caches that are distinct from the traditional and typical cache memory hierarchy of a processor system.
In a typical multicore processor system, stack data is “owned” or accessed by only one execution core at a time. In other words, stack data is usually private in nature. That said, there are certain situations where stack data is shared between different execution cores. Consequently, stack caches in a multicore processor system should be kept coherent and should be managed in an efficient and effective manner.